// function* generateSequence() {
//   yield 1;
//   yield 2;
//   yield 3;
// }

// const generator = generateSequence();

// console.log(generator.next().value); // 输出 1
// console.log(generator.next().value); // 输出 2
// console.log(generator.next().value); // 输出 3

// function* generateSequence(start, end) {
//   for (let i = start; i <= end; i++) {
//     yield i;
//   }
// }

// function iterateSequence(sequence) {
//   const iterator = sequence[Symbol.iterator]();
//   console.log(iterator, "iterator");

//   while (true) {
//     const result = iterator.next();
//     console.log(result);
//     // result: { value: 1, done: false } { value: 2, done: false } { value: 3, done: false } { value: undefined, done: true }
//     if (result.done) {
//       break;
//     }

//     console.log(result.value);
//   }
// }

// const sequence = generateSequence(1, 3);

// iterateSequence(sequence);

// function* myGenerator() {
//   try {
//     yield 1;
//     yield 2;
//     throw new Error("出现问题了！");
//     yield 3;
//   } catch (error) {
//     console.error(error);
//   }
// }

// const generator = myGenerator();

// console.log(generator.next().value); // 输出：1
// console.log(generator.next().value); // 输出：2
// console.log(generator.next().value); // 输出：日志中记录的错误
// console.log(generator.next().value); // 输出：undefined

function* myGenerator() {
  yield 1;
  yield 2;
  throw new Error("出现问题了！");
  yield 3;
}

try {
  const generator = myGenerator();
  console.log(generator.next().value); // 输出：1
  console.log(generator.next().value); // 输出：2
  console.log(generator.next().value); // 输出：抛出错误
  console.log(generator.next().value); // 不会输出，执行已经结束了
} catch (error) {
  console.error(error);
}

navigator.geolocation.getCurrentPosition(function (position) {
  console.log(position);
});
